서버사이드 언어인 php에서 현재 페이지의 위치 url주소나 파라미터(쿼리스트링)값 등을 알기위한 방법으로 아래의
$_SERVER 키워드를 사용합니다. 이는 내장변수로 전역 스코프를 가지기 때문에 php의 모든 페이지에서 사용할 수 있습니다. 그럼 아래 예제를 보세요.
# $_SERVER[]의 사용방법 및 예제아래는 현재 접속자의 host 및 URL 관련 정보를 가져오는 예제입니다. 가져온 값을 각각 출력하여 나타내려합니다.
<?php
echo $_SERVER['HTTP_HOST'];
// 예제 1번, 현재 페이지의 호스트값 불러오기
echo $_SERVER['REQUEST_URI'];
// 예제 2번, 호스트를 제외한 나머지 주소
echo $_SERVER['QUERY_STRING'];
// 예제 3번, 현재 페이지의 쿼리 스트링 값
?>
위 예제는 각각 호스트주소, 호스트 이외의 uri 그리도 쿼리스트링을 값을 반환하는 방법입니다. 위를 출력하면 각각 아래와 같은 결과를 확인할 수 있습니다.
webisfree.com
// 예제 1번 결과 - 현재 호스트 주소를 출력
/index.php
// 예제 2번 결과 - 호스트를 제외한 나머지 주소를 모두 출력
titlequery=php-현재-페이지-url주소-파라미터-쿼리스트링등의-값-확인하는-방법
// 예제 3번 결과 - 주소 뒤의 파라미터 값, 즉 쿼리스트링을 모두 출력함
! 현재 url주소를 확인하는 경우는?
언제 위와 같이 주소를 확인해야할까요? 다양한 경우가 있겠지만 현재 있는
페이지의 주소에 따라 다른 뷰를 보여주는 경우에 많이 사용됩니다. 예를들어 지금 /contact/ 페이지에 위치한 경우 해당 페이지의 html을 템플릿으로 연결할 수도 있고 아니면
현재 페이지에 해당하는 메뉴만 강조하는 인터페이스를 만들어 방문자에게 어디에 있는지 위치를 항상 보여줄 수 있습니다.
# 참고사항
참고로 위의 $_SERVER["query_string"]은 주소로 넘어온 쿼리스트링 전체를 받아오기 때문에 만약 다수의 파라미터가 존재하는 경우 다시 원하는 값만 잘라내는 과정이 필요할 수 있습니다. 이런 경우는
$_GET["파라미터값"]을 사용하면 하나의 값만 받을 수 있어 더 간단합니다.